package com.ruoyi.statistics.mapper;

import java.util.List;
import java.util.Map;

/**
 * 订单数据分析Mapper接口
 * 
 * @author ruoyi
 * @date 2025-01-18
 */
public interface OrderAnalyseMapper 
{
    /**
     * 查询订单核心指标数据
     * 
     * @param params 查询参数
     * @return 核心指标数据
     */
    public Map<String, Object> selectOrderMetrics(Map<String, Object> params);

    /**
     * 查询支付状态分布
     * 
     * @param params 查询参数
     * @return 支付状态分布数据
     */
    public List<Map<String, Object>> selectPaymentStatusDistribution(Map<String, Object> params);

    /**
     * 查询订单来源分布
     * 
     * @param params 查询参数
     * @return 订单来源分布数据
     */
    public List<Map<String, Object>> selectOrderSourceDistribution(Map<String, Object> params);

    /**
     * 查询订单详情列表
     * 
     * @param params 查询参数
     * @return 订单详情列表
     */
    public List<Map<String, Object>> selectOrderDetails(Map<String, Object> params);

    /**
     * 查询订单详情总数
     * 
     * @param params 查询参数
     * @return 总数
     */
    public Integer selectOrderDetailsCount(Map<String, Object> params);

    /**
     * 查询订单转化漏斗数据
     * 
     * @param params 查询参数
     * @return 转化漏斗数据
     */
    public Map<String, Object> selectOrderFunnel(Map<String, Object> params);

    /**
     * 查询订单趋势数据
     * 
     * @param params 查询参数
     * @return 趋势数据
     */
    public List<Map<String, Object>> selectOrderTrend(Map<String, Object> params);

    /**
     * 查询订单详情数据（用于导出）
     * 
     * @param params 查询参数
     * @return 订单详情数据
     */
    public List<Map<String, Object>> selectOrderDetailsForExport(Map<String, Object> params);

    /**
     * 查询订单金额分布数据
     * 
     * @param params 查询参数
     * @return 订单金额分布数据
     */
    public List<Map<String, Object>> selectOrderAmountDistribution(Map<String, Object> params);
}